﻿using Sidvall.IdentityManager.Data;
using System;
using System.Collections.Generic;
using System.Threading.Tasks;

namespace Sidvall.IdentityManager
{
	public interface IPlugin
	{
		string Title { get; }
		string DataColumnCaption1 { get; }
		string DataColumnCaption2 { get; }
		string DataColumnCaption3 { get; }
		string DefaultContext { get; }
		Type FilterViewModelType { get; }
		Type EditViewModelType { get; }

		Task<PluginResult> DeleteUsersAsync(IEnumerable<string> userIds);
		Task<PluginFilterResult> GetUsersAsync(string filterContext, IEnumerable<string> userIds, string textFilter, int? rowCount, bool sortReversed);
		Task InitializeAsync(string context);
	}
}